home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / CIncludes / StringCompare.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  7.9 KB  |  302 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        StringCompare.h
  3.  
  4.      Contains:    Public interfaces for String Comparison and related operations
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __STRINGCOMPARE__
  18. #define __STRINGCOMPARE__
  19.  
  20. #ifndef __MACTYPES__
  21. #include <MacTypes.h>
  22. #endif
  23. #ifndef __TEXTCOMMON__
  24. #include <TextCommon.h>
  25. #endif
  26. #ifndef __SCRIPT__
  27. #include <Script.h>
  28. #endif
  29.  
  30.  
  31.  
  32. #if PRAGMA_ONCE
  33. #pragma once
  34. #endif
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39.  
  40. #if PRAGMA_IMPORT
  41. #pragma import on
  42. #endif
  43.  
  44. #if PRAGMA_STRUCT_ALIGN
  45.     #pragma options align=mac68k
  46. #elif PRAGMA_STRUCT_PACKPUSH
  47.     #pragma pack(push, 2)
  48. #elif PRAGMA_STRUCT_PACK
  49.     #pragma pack(2)
  50. #endif
  51.  
  52. /*
  53.  
  54.     Here are the current System 7 routine names and the translations to the older forms.
  55.     Please use the newer forms in all new code and migrate the older names out of existing
  56.     code as maintenance permits.
  57.     
  58.     NEW NAME                    OLD NAME                    OBSOLETE FORM (no handle)
  59.     
  60.     CompareString (Str255)        IUCompPString (hp only)        IUCompString (hp only)
  61.     CompareText (ptr/len)        IUMagPString                IUMagString
  62.     IdenticalString (Str255)    IUEqualPString (hp only)    IUEqualString  (hp only)
  63.     IdenticalText (ptr/len)        IUMagIDPString                IUMagIDString
  64.     LanguageOrder                IULangOrder
  65.     ScriptOrder                    IUScriptOrder
  66.     StringOrder (Str255)        IUStringOrder (hp only)
  67.     TextOrder (ptr/len)            IUTextOrder
  68.  
  69.     RelString
  70.     CmpString (a only)                    
  71.     EqualString (hp only)
  72.     
  73.     ReplaceText
  74.  
  75. */
  76.  
  77.  
  78. enum {
  79.                                                                 /* Special language code values for Language Order*/
  80.     systemCurLang                = -2,                            /* current (itlbLang) lang for system script*/
  81.     systemDefLang                = -3,                            /* default (table) lang for system script*/
  82.     currentCurLang                = -4,                            /* current (itlbLang) lang for current script*/
  83.     currentDefLang                = -5,                            /* default lang for current script*/
  84.     scriptCurLang                = -6,                            /* current (itlbLang) lang for specified script*/
  85.     scriptDefLang                = -7                            /* default language for a specified script*/
  86. };
  87.  
  88. /* obsolete names*/
  89.  
  90. enum {
  91.     iuSystemCurLang                = -2,
  92.     iuSystemDefLang                = -3,
  93.     iuCurrentCurLang            = -4,
  94.     iuCurrentDefLang            = -5,
  95.     iuScriptCurLang                = -6,
  96.     iuScriptDefLang                = -7
  97. };
  98.  
  99.  
  100. /*
  101.    The following functions are old names, but are required for System 7 PowerPC builds
  102.    because InterfaceLib exports these names, instead of the new ones.
  103. */
  104.  
  105. EXTERN_API( short )
  106. IUMagPString                    (const void *            aPtr,
  107.                                  const void *            bPtr,
  108.                                  short                     aLen,
  109.                                  short                     bLen,
  110.                                  Handle                 itl2Handle)                            THREEWORDINLINE(0x3F3C, 0x001A, 0xA9ED);
  111.  
  112. EXTERN_API( short )
  113. IUMagIDPString                    (const void *            aPtr,
  114.                                  const void *            bPtr,
  115.                                  short                     aLen,
  116.                                  short                     bLen,
  117.                                  Handle                 itl2Handle)                            THREEWORDINLINE(0x3F3C, 0x001C, 0xA9ED);
  118.  
  119. EXTERN_API( short )
  120. IUTextOrder                        (const void *            aPtr,
  121.                                  const void *            bPtr,
  122.                                  short                     aLen,
  123.                                  short                     bLen,
  124.                                  ScriptCode             aScript,
  125.                                  ScriptCode             bScript,
  126.                                  LangCode                 aLang,
  127.                                  LangCode                 bLang)                                THREEWORDINLINE(0x3F3C, 0x0022, 0xA9ED);
  128.  
  129. EXTERN_API( short )
  130. IULangOrder                        (LangCode                 language1,
  131.                                  LangCode                 language2)                            THREEWORDINLINE(0x3F3C, 0x0020, 0xA9ED);
  132.  
  133. EXTERN_API( short )
  134. IUScriptOrder                    (ScriptCode             script1,
  135.                                  ScriptCode             script2)                            THREEWORDINLINE(0x3F3C, 0x001E, 0xA9ED);
  136.  
  137. EXTERN_API( short )
  138. IUCompPString                    (ConstStr255Param         aStr,
  139.                                  ConstStr255Param         bStr,
  140.                                  Handle                 itl2Handle);
  141.  
  142. EXTERN_API( short )
  143. IUEqualPString                    (ConstStr255Param         aStr,
  144.                                  ConstStr255Param         bStr,
  145.                                  Handle                 itl2Handle);
  146.  
  147. EXTERN_API( short )
  148. IUStringOrder                    (ConstStr255Param         aStr,
  149.                                  ConstStr255Param         bStr,
  150.                                  ScriptCode             aScript,
  151.                                  ScriptCode             bScript,
  152.                                  LangCode                 aLang,
  153.                                  LangCode                 bLang);
  154.  
  155. /*
  156.    The following new function name IS exported by InterfaceLib and works on both 68k and
  157.    System 7 PowerPC.
  158. */
  159. EXTERN_API( short )
  160. ScriptOrder                        (ScriptCode             script1,
  161.                                  ScriptCode             script2)                            THREEWORDINLINE(0x3F3C, 0x001E, 0xA9ED);
  162.  
  163. /* For C the other new names are mapped to the old names using #define.*/
  164. #if TARGET_OS_MAC
  165. #define CompareString(aStr, bStr, itl2Handle) \
  166.          IUCompPString(aStr, bStr, itl2Handle)
  167. #endif
  168. #define MacCompareString(aStr, bStr, itl2Handle) \
  169.          IUCompPString(aStr, bStr, itl2Handle)
  170. #define CompareText(aPtr, bPtr, aLen, bLen, itl2Handle) \
  171.          IUMagPString(aPtr, bPtr, aLen, bLen, itl2Handle)
  172. #define IdenticalString(aStr, bStr, itl2Handle) \
  173.          IUEqualPString(aStr, bStr, itl2Handle)
  174. #define IdenticalText(aPtr, bPtr, aLen, bLen, itl2Handle) \
  175.          IUMagIDPString(aPtr, bPtr, aLen, bLen, itl2Handle)
  176. #define StringOrder(aStr, bStr, aScript, bScript, aLang, bLang) \
  177.          IUStringOrder(aStr, bStr, aScript, bScript, aLang, bLang)
  178. #define TextOrder(aPtr, bPtr, aLen, bLen, aScript, bScript, aLang, bLang) \
  179.          IUTextOrder(aPtr, bPtr, aLen, bLen, aScript, bScript, aLang, bLang)
  180. #define LanguageOrder(language1, language2) \
  181.          IULangOrder(language1, language2)
  182. /* C glue*/
  183.  
  184. #if CGLUESUPPORTED
  185. #if OLDROUTINENAMES
  186. EXTERN_API_C( short )
  187. iucomppstring                    (const char *            aStr,
  188.                                  const char *            bStr,
  189.                                  Handle                 intlHandle);
  190.  
  191. EXTERN_API_C( short )
  192. iuequalpstring                    (const char *            aStr,
  193.                                  const char *            bStr,
  194.                                  Handle                 intlHandle);
  195.  
  196. EXTERN_API_C( short )
  197. iustringorder                    (const char *            aStr,
  198.                                  const char *            bStr,
  199.                                  ScriptCode             aScript,
  200.                                  ScriptCode             bScript,
  201.                                  LangCode                 aLang,
  202.                                  LangCode                 bLang);
  203.  
  204. #endif  /* OLDROUTINENAMES */
  205.  
  206. #endif  /* CGLUESUPPORTED */
  207.  
  208. /*
  209.    The following new function name IS exported by InterfaceLib and works on both 68k and
  210.    System 7 PowerPC.
  211. */
  212. #if TARGET_OS_MAC
  213.     #define MacReplaceText ReplaceText
  214. #endif
  215. EXTERN_API( short )
  216. MacReplaceText                    (Handle                 baseText,
  217.                                  Handle                 substitutionText,
  218.                                  Str15                     key)                                FOURWORDINLINE(0x2F3C, 0x820C, 0xFFDC, 0xA8B5);
  219.  
  220. EXTERN_API( short )
  221. IUMagString                        (const void *            aPtr,
  222.                                  const void *            bPtr,
  223.                                  short                     aLen,
  224.                                  short                     bLen)                                THREEWORDINLINE(0x3F3C, 0x000A, 0xA9ED);
  225.  
  226. EXTERN_API( short )
  227. IUMagIDString                    (const void *            aPtr,
  228.                                  const void *            bPtr,
  229.                                  short                     aLen,
  230.                                  short                     bLen)                                THREEWORDINLINE(0x3F3C, 0x000C, 0xA9ED);
  231.  
  232. EXTERN_API( short )
  233. IUCompString                    (ConstStr255Param         aStr,
  234.                                  ConstStr255Param         bStr);
  235.  
  236. EXTERN_API( short )
  237. IUEqualString                    (ConstStr255Param         aStr,
  238.                                  ConstStr255Param         bStr);
  239.  
  240. #if CGLUESUPPORTED
  241. #if OLDROUTINENAMES
  242. EXTERN_API_C( short )
  243. iucompstring                    (const char *            aStr,
  244.                                  const char *            bStr);
  245.  
  246. EXTERN_API_C( short )
  247. iuequalstring                    (const char *            aStr,
  248.                                  const char *            bStr);
  249.  
  250. #endif  /* OLDROUTINENAMES */
  251.  
  252. #endif  /* CGLUESUPPORTED */
  253.  
  254. EXTERN_API( short )
  255. RelString                        (ConstStr255Param         str1,
  256.                                  ConstStr255Param         str2,
  257.                                  Boolean                 caseSensitive,
  258.                                  Boolean                 diacSensitive);
  259.  
  260. EXTERN_API( Boolean )
  261. EqualString                        (ConstStr255Param         str1,
  262.                                  ConstStr255Param         str2,
  263.                                  Boolean                 caseSensitive,
  264.                                  Boolean                 diacSensitive);
  265.  
  266. #if CGLUESUPPORTED
  267. EXTERN_API_C( short )
  268. relstring                        (const char *            str1,
  269.                                  const char *            str2,
  270.                                  Boolean                 caseSensitive,
  271.                                  Boolean                 diacSensitive);
  272.  
  273. EXTERN_API_C( Boolean )
  274. equalstring                        (const char *            str1,
  275.                                  const char *            str2,
  276.                                  Boolean                 caseSensitive,
  277.                                  Boolean                 diacSensitive);
  278.  
  279. #endif  /* CGLUESUPPORTED */
  280.  
  281.  
  282. #if PRAGMA_STRUCT_ALIGN
  283.     #pragma options align=reset
  284. #elif PRAGMA_STRUCT_PACKPUSH
  285.     #pragma pack(pop)
  286. #elif PRAGMA_STRUCT_PACK
  287.     #pragma pack()
  288. #endif
  289.  
  290. #ifdef PRAGMA_IMPORT_OFF
  291. #pragma import off
  292. #elif PRAGMA_IMPORT
  293. #pragma import reset
  294. #endif
  295.  
  296. #ifdef __cplusplus
  297. }
  298. #endif
  299.  
  300. #endif /* __STRINGCOMPARE__ */
  301.  
  302.